<?php
/**
 * Created by PhpStorm.
 * User: lullabies
 * Date: 2019/5/28
 * Time: 18:05
 */

namespace app\admin\controller;
use app\admin\model\ExamBanner as ExamBannerModel;
use app\Admin\validate\AddBanner;
use app\api\validate\IDMustBePositiveInt;
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept,fs-token");
header('Access-Control-Allow-Methods: GET, POST');
/**
 * @title 模拟考轮播图管理
 * @group Admin
 */
class ExamBanner extends Base
{
    /**
     * @title 轮播图片列表
     * @url /Admin/exam_banner/listBanner
     * @author 开发者
     * @method POST/GET
     * @description 默认按更新时间降序排列，可自行设置
     * @param name:page require:0 default:1 type:int desc:当前页面数  默认第一页
     * @param name:page_size require:0 default:10 type:int desc:每页显示记录数 默认10条
     * @param name:sort require:0 default:update_time type:vatchar desc:排序关键字 默认更新时间
     * @param name:order require:0 default:desc type:varchar desc:默认排序为降序
     * @return id:轮播图id
     * @return name:轮播图名称
     * @return description:轮播图简介
     * @return url:轮播图地址
     * @return create_time:轮播图的创建时间
     * @return update_time:修改时间
     */
    public function listBanner(){
        //获得前端显示的当前页数
        $page = input('page', 1, 'intval');
        //让前端设置数据一页显示几条数据
        $page_size = input('page_size', 10, 'intval');
        //排序的关键字
        $sort = input('sort','update_time');
        //显示顺序
        $order = input('order','desc');
        $result = ExamBannerModel::where('status',1)
                ->page($page,$page_size)
                ->order($sort,$order)
                ->select();
        $count = ExamBannerModel::where(['status'=>1])->count();
        if($result->isEmpty()){
            $this->apiReturn(303,'未查询到相关信息！');
        }else{
            $this->apiReturn(200,'查询成功',$result,$count);
        }
    }
    /**
     * @title 假删除轮播图片列表
     * @url /Admin/exam_banner/listDelBanner
     * @author 开发者
     * @method POST/GET
     * @description 默认按更新时间降序排列，可自行设置
     * @param name:page require:0 default:1 type:int desc:当前页面数  默认第一页
     * @param name:page_size require:0 default:10 type:int desc:每页显示记录数 默认10条
     * @param name:sort require:0 default:update_time type:vatchar desc:排序关键字 默认更新时间
     * @param name:order require:0 default:desc type:varchar desc:默认排序为降序
     * @return id:轮播图id
     * @return name:轮播图名称
     * @return description:轮播图简介
     * @return url:轮播图地址
     * @return create_time:轮播图的创建时间
     * @return update_time:修改时间
     */
    public function listDelBanner(){
        //获得前端显示的当前页数
        $page = input('page', 1, 'intval');
        //让前端设置数据一页显示几条数据
        $page_size = input('page_size', 10, 'intval');
        //排序的关键字
        $sort = input('sort','update_time');
        //显示顺序
        $order = input('order','desc');
        $result = ExamBannerModel::where('status',2)
            ->page($page,$page_size)
            ->order($sort,$order)
            ->select();
        $count = ExamBannerModel::where(['status'=>2])->count();
        if($result->isEmpty()){
            $this->apiReturn(303,'未查询到相关信息！');
        }else{
            $this->apiReturn(200,'查询成功',$result,$count);
        }
    }
    /**
     * @title 添加模拟考轮播图片
     * @url /Admin/exam_banner/addBanner
     * @author 开发者
     * @method POST/GET
     * @description 根据上传轮播图地址添加轮播图
     * @param name:name type:varchar default:null require:1 desc:轮播图名称
     * @param name:description type:varchar default:null require:1 desc:轮播图简介
     * @param name:img type:varchar default:null require:1 desc:轮播图地址
     * @return id:轮播图id
     * @return name:轮播图名称
     * @return description:轮播图简介
     * @return url:轮播图地址
     * @return create_time:轮播图的创建时间
     * @return update_time:修改时间
     */
    public function addBanner(){
        $data = I('name|description|img');
        (new AddBanner())->goCheck();
        $result = ExamBannerModel::create($data);
        if($result->isEmpty()){
            $this->apiReturn(303,'模拟考轮播图添加失败！');
        }else{
            $this->apiReturn(200,'添加成功！');
        }
    }
    /**
     * @title 修改模拟考轮播图片
     * @url /Admin/exam_banner/editBanner
     * @author 开发者
     * @method POST/GET
     * @param name:id type:int default:null require:1 desc:轮播图id
     * @param name:name type:varchar default:null require:1 desc:轮播图名称
     * @param name:description type:varchar default:null require:1 desc:轮播图简介
     * @param name:img type:varchar default:null require:1 desc:轮播图地址
     */
    public function editBanner(){
        $data = I('id|name|description|img');
        (new AddBanner())->goCheck();
        (new IDMustBePositiveInt())->goCheck();
        $result = ExamBannerModel::update($data);
        if($result->isEmpty()){
            $this->apiReturn(303,'修改轮播图失败！');
        }else{
            $this->apiReturn(200,'修改成功！');
        }
    }
    /**
     * @title 假删除轮播图
     *  @url /Admin/exam_banner/delBanner
     * @author 开发者
     * @method POST/GET
     * @param name:id type:int default:null require:1 desc:轮播图id
     */
    public function delBanner(){
        $id = input('id');
        if (!$id) $this->apiReturn(303, '请选择需要删除的轮播图');
        $result = ExamBannerModel::update(['status'=>2,'id'=>$id]);
        if($result->isEmpty()){
            $this->apiReturn(303,'删除失败！');
        }else{
            $this->apiReturn(200,'删除成功！');
        }
    }
    /**
     * @title 恢复假删除的轮播图
     *  @url /Admin/exam_banner/restoreBanner
     * @author 开发者
     * @method POST/GET
     * @param name:id type:int default:null require:1 desc:轮播图id
     */
    public function restoreBanner(){
        (new IDMustBePositiveInt())->goCheck();
        $id = input('id');
        $result = ExamBannerModel::update(['status'=>1],['id'=>$id]);
        if($result->isEmpty()){
            $this->apiReturn(303,'恢复失败！');
        }else{
            $this->apiReturn(200,'恢复成功！');
        }
    }
    /**
     * @title 彻底删除的轮播图
     *  @url /Admin/exam_banner/delBannerReal
     * @author 开发者
     * @method POST/GET
     * @param name:id type:int default:null require:1 desc:轮播图id
     */
    public function delBannerReal(){
        $id = input('id');
        if (!$id) $this->apiReturn(303, '请选择需要删除的轮播图');
        $result = ExamBannerModel::destroy($id);
        if($result){
            $this->apiReturn(200,'删除成功！');
        }else{
            $this->apiReturn(303,'删除失败！');
        }
    }
}